package com.iussoft.tdengine.db;

import java.util.List;
import java.util.Map;

/**
 * @description: TDengine数据库操作接口
 * @author: Hou Dayu
 * @date: Created in 2020/11/10
 */
public interface BaseDao {

    String defDatasourceKey();
    /**
     * 按给定sql操作数据库
     * @param datasourceKey 数源KEY，空为默认数据源
     * @param sql 待执行sql语句
     */
    boolean execute(String datasourceKey,String sql);

    /**
     * 检查表是否存在
     * @param datasourceKey
     * @param tableName
     * @return
     */
    boolean existsTable(String datasourceKey,String tableName);
    /**
     * 数据分页列表查询
     * @param datasourceKey 数源KEY，空为默认数据源
     */
    Map<String,Object> selectPage(String datasourceKey,String sql,String orderBy,int pageIndex,int pageSize);

    /**
     * 数据列表查询
     * @param datasourceKey 数源KEY，空为默认数据源
     */
    List<Map> select(String datasourceKey,String sql,String orderBy);

    /**
     * 数据分页列表查询
     * @param datasourceKey 数源KEY，空为默认数据源
     */
    Map<String,Object> selectPage(String datasourceKey,String sql,String keyPrefix,String orderBy,int pageIndex,int pageSize);

    /**
     * 数据列表查询
     * @param datasourceKey 数源KEY，空为默认数据源
     */
    List<Map> select(String datasourceKey,String sql,String keyPrefix,String orderBy);
}
